/*
 * JGO2RDF creates a RDF representation of GAF2 files, which are automatically sourced from GO ftp site.
 * Copyright (C) 2012 Matthew M. Hindle & Artem Lysenko
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

package uk.co.jgo2rdf.rdf.sio;

import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Property;
import com.hp.hpl.jena.rdf.model.Resource;

/**
 * @author hindlem
 *         Date: 4/26/11
 *         Time: 1:10 PM
 * @version 0.10
 */
public class SIOVocab {

    private static final Model m_model = ModelFactory.createDefaultModel();

    private static final String SIO_NS = "http://semanticscience.org/resource/";


    public static final Resource entity = m_model.createResource(SIO_NS + "SIO_000000");

    public static final Resource protein_sequence = m_model.createResource(SIO_NS + "SIO_010015");
    public static final Resource molecular_site = m_model.createResource(SIO_NS + "SIO_010049");

    public static final Resource unique_identifier = m_model.createResource(SIO_NS + "SIO_000675");

    public static final Resource nucleic_acid_sequence = m_model.createResource(SIO_NS + "SIO_010016");
    public static final Resource deoxynucleic_acid_sequence = m_model.createResource(SIO_NS + "SIO_010018");
    public static final Resource ribonucleic_acid_sequence = m_model.createResource(SIO_NS + "SIO_010017");

    public static final Resource protein = m_model.createResource(SIO_NS + "SIO_010043");
    public static final Resource rna = m_model.createResource(SIO_NS + "SIO_010009");
    public static final Resource dna = m_model.createResource(SIO_NS + "SIO_010010");

    public static final Resource document = m_model.createResource(SIO_NS + "SIO_000148");
    public static final Resource collection = m_model.createResource(SIO_NS + "SIO_000616");

    public static final Resource length = m_model.createResource(SIO_NS + "SIO_000041");

    public static final Property has_unique_identifier_attribute = m_model.createProperty(SIO_NS, "SIO_000673");
    public static final Property has_value = m_model.createProperty(SIO_NS, "SIO_000300");
    public static final Property has_parameter = m_model.createProperty(SIO_NS, "SIO_000552");

    public static final Property biological_entity = m_model.createProperty(SIO_NS, "SIO_010046");
    public static final Property organism = m_model.createProperty(SIO_NS, "SIO_010046");

//  public static final Property has_refseq_transcript = m_model.createProperty(SIO_NS, "#hasRefSeqTranscript");

    public static final Property encodes = m_model.createProperty(SIO_NS, "SIO_010078");
    public static final Property has_attribute = m_model.createProperty(SIO_NS, "SIO_000008");
    public static final Property is_attribute_of = m_model.createProperty(SIO_NS, "SIO_000011");

    public static final Property is_related_to = m_model.createProperty(SIO_NS, "SIO_000001");
    public static final Property is_participant_in = m_model.createProperty(SIO_NS, "SIO_000062");
    public static final Property has_function = m_model.createProperty(SIO_NS, "SIO_000225");
    public static final Property is_located_in = m_model.createProperty(SIO_NS, "SIO_000061");

    public static final Property is_supported_by = m_model.createProperty(SIO_NS, "SIO_000208");
    public static final Property has_source = m_model.createProperty(SIO_NS, "SIO_000253");
    public static final Property has_supporting_evidence = m_model.createProperty(SIO_NS, "SIO_000206");

    public static final Property has_provider = m_model.createProperty(SIO_NS, "SIO_000066");

    public static final Property is_about = m_model.createProperty(SIO_NS, "SIO_000332");
    public static final Property is_subject_of = m_model.createProperty(SIO_NS, "SIO_000629");

    public static final Property has_member = m_model.createProperty(SIO_NS, "SIO_000059");
    public static final Property has_part = m_model.createProperty(SIO_NS, "SIO_000028");
    public static final Property is_part_of = m_model.createProperty(SIO_NS, "SIO_000068");
    public static final Property refers_to = m_model.createProperty(SIO_NS, "SIO_000628");

    public static final Property is_transcribed_into = m_model.createProperty(SIO_NS, "SIO_010080");
    public static final Property is_translated_into = m_model.createProperty(SIO_NS, "SIO_010082");

    public static final Property is_transcribed_from = m_model.createProperty(SIO_NS, "SIO_010081");
    public static final Property is_translated_from = m_model.createProperty(SIO_NS, "SIO_010083");

    public static final Property has_component_part = m_model.createProperty(SIO_NS, "SIO_000369");

    public static final Property is_input_in = m_model.createProperty(SIO_NS, "SIO_000231");
    public static final Property has_input = m_model.createProperty(SIO_NS, "SIO_000230");
    public static final Property has_output = m_model.createProperty(SIO_NS, "SIO_000229");

    public static final Property has_participant = m_model.createProperty(SIO_NS, "SIO_000132");

    public static final Property processual_role = m_model.createProperty(SIO_NS, "SIO_000016");

    public static final Property is_realized_in = m_model.createProperty(SIO_NS, "SIO_000356");
    public static final Property realizes = m_model.createProperty(SIO_NS, "SIO_000355");

}
